Το επόμενο χαρακτηριστικό της python για το οποίο θα μιλήσουμε είναι οι λίστες.
Οι λίστες είναι χαρακτηριστικό παράδειγμα της απλότητας της σύνταξης της python και πως έχει ενσωματώσει χρήσιμες και σχετικά δύσχρηστες, σε άλλες γλώσσες, έννοιες, και τις έχει μετατρέψει σε πανταχού παρόντα εργαλεία.
Μια λίστα ξεκινάει και τελειώνει πάντα σε αγκύλες, και διαχωρίζει τα περιεχόμενά της με κόμματα:
an_empty_list = []
a_list = [1,2,3]
a_list_of_strings = ["one", "two", "three"]
a_mixed_list = ["one", 2, "three", True]
Οι λίστες είναι ο πρώτος “πολύπλοκος” τύπος τιμής που θα συναντήσετε σε αυτό το workshop. Μερικές παρατηρήσεις:
Έστω ότι list είναι μια μεταβλητή που δείχνει σε μια λίστα. Αυτές είναι μερικές από τις λειτουργίες που υποστηρίζει μια λίστα.
Οι λίστες στην python παρέχουν έναν πολύ πλήρη και εύχρηστο τρόπο προσπέλασης των στοιχείων τους, που λέγεται slicing.
Σε μια λίστα, τα στοιχεία έχουν μια συγκεκριμένη σειρά, και το κάθε ένα αντιστοιχίζεται με έναν αριθμό θέσης, ξεκινώντας από τη θέση 0. Κάπως έτσι:
Για να πάρουμε το στοιχείο στη θέση 1 της λίστας, εάν η λίστα λέγεται l, θα γράψουμε:
l[1]
Πολύ εύκολα παίρνουμε και παραπάνω από ένα στοιχεία της λίστας:
l[1:3]
Αυτό θα μας δώσει τα στοιχεία από τη θέση 1 έως τη θέση 2. ΠΡΟΣΟΧΗ: Δε θα μας δώσει το στοιχείο στη θέση 3! Εάν θέλαμε και αυτό, θα έπρεπε να γράψουμε l[1:4]. Γενικα, l[i:j] μας δίνει τα στοιχεία από τη θέση i έως τη θέση j-1.
Αυτό είναι το slicing, δηλαδή κόψιμο μιας λίστας. Στην ουσία, η αρχική λίστα παραμένει ανέπαφη, απλά με το slicing δημιουργείται μια νέα λίστα που περιέχει τα στοιχεία που ζητήσαμε από την αρχική.
Μπορούμε επίσης να παραλείψουμε ένα από τα δύο άκρα:
l[:3]
l[1:]
Τότε, στην πρώτη περίπτωση η αρχή του slice θα είναι η αρχή της λίστας. Στη δεύτερη, το τέλος του slice θα είναι το τέλος της λίστας.
Τέλος, μπορείτε να χρησιμοποιήσετε και αρνητικούς αριθμούς, που υποδηλώνουν στοιχεία της λίστας ξεκινώντας από το τέλος. Για παράδειγμα, αυτό είναι το τελευταίο στοιχείο:
l[-1]
Μερικά παραδείγματα:
>>> a_mixed_list = ["one", 2, "three", True]
>>> a_mixed_list[2]
'three'
>>> a_mixed_list[1:3]
[2, 'three']
>>> a_mixed_list[1:]
[2, 'three', True]
>>> a_mixed_list[:3]
['one', 2, 'three']
>>> a_mixed_list[-2]
'three'
Τα αλφαριθμητικά, στην python, είναι κι αυτά λίστες. Επομένως όλες οι λειτουργίες που περιγράψαμε παραπάνω, εφαρμόζονται και σε αλφαριθμητικά. Μερικά παραδείγματα:
>>> string = "A monster appears!"
>>> string[2]
'm'
>>> string[2:9]
'monster'
>>> string[10:]
'appears!'